↳ Prolog
↳ PrologToPiTRSProof
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
MINSORT_IN_GA(L, .(X, L1)) → U1_GA(L, X, L1, min1_in_ag(X, L))
MINSORT_IN_GA(L, .(X, L1)) → MIN1_IN_AG(X, L)
MIN1_IN_AG(M, .(X, L)) → U4_AG(M, X, L, min2_in_gag(X, M, L))
MIN1_IN_AG(M, .(X, L)) → MIN2_IN_GAG(X, M, L)
MIN2_IN_GAG(X, A, .(M, L)) → U5_GAG(X, A, M, L, min_in_gga(X, M, B))
MIN2_IN_GAG(X, A, .(M, L)) → MIN_IN_GGA(X, M, B)
MIN_IN_GGA(X, Y, X) → U7_GGA(X, Y, le_in_gg(X, Y))
MIN_IN_GGA(X, Y, X) → LE_IN_GG(X, Y)
LE_IN_GG(s(X), s(Y)) → U12_GG(X, Y, le_in_gg(X, Y))
LE_IN_GG(s(X), s(Y)) → LE_IN_GG(X, Y)
MIN_IN_GGA(X, Y, Y) → U8_GGA(X, Y, gt_in_gg(X, Y))
MIN_IN_GGA(X, Y, Y) → GT_IN_GG(X, Y)
GT_IN_GG(s(X), s(Y)) → U11_GG(X, Y, gt_in_gg(X, Y))
GT_IN_GG(s(X), s(Y)) → GT_IN_GG(X, Y)
U5_GAG(X, A, M, L, min_out_gga(X, M, B)) → U6_GAG(X, A, M, L, min2_in_gag(B, A, L))
U5_GAG(X, A, M, L, min_out_gga(X, M, B)) → MIN2_IN_GAG(B, A, L)
U1_GA(L, X, L1, min1_out_ag(X, L)) → U2_GA(L, X, L1, remove_in_gga(X, L, L2))
U1_GA(L, X, L1, min1_out_ag(X, L)) → REMOVE_IN_GGA(X, L, L2)
REMOVE_IN_GGA(N, .(M, L), .(M, L1)) → U9_GGA(N, M, L, L1, notEq_in_gg(N, M))
REMOVE_IN_GGA(N, .(M, L), .(M, L1)) → NOTEQ_IN_GG(N, M)
NOTEQ_IN_GG(s(X), s(Y)) → U13_GG(X, Y, notEq_in_gg(X, Y))
NOTEQ_IN_GG(s(X), s(Y)) → NOTEQ_IN_GG(X, Y)
U9_GGA(N, M, L, L1, notEq_out_gg(N, M)) → U10_GGA(N, M, L, L1, remove_in_gga(N, L, L1))
U9_GGA(N, M, L, L1, notEq_out_gg(N, M)) → REMOVE_IN_GGA(N, L, L1)
U2_GA(L, X, L1, remove_out_gga(X, L, L2)) → U3_GA(L, X, L1, minsort_in_ga(L2, L1))
U2_GA(L, X, L1, remove_out_gga(X, L, L2)) → MINSORT_IN_GA(L2, L1)
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
MINSORT_IN_GA(L, .(X, L1)) → U1_GA(L, X, L1, min1_in_ag(X, L))
MINSORT_IN_GA(L, .(X, L1)) → MIN1_IN_AG(X, L)
MIN1_IN_AG(M, .(X, L)) → U4_AG(M, X, L, min2_in_gag(X, M, L))
MIN1_IN_AG(M, .(X, L)) → MIN2_IN_GAG(X, M, L)
MIN2_IN_GAG(X, A, .(M, L)) → U5_GAG(X, A, M, L, min_in_gga(X, M, B))
MIN2_IN_GAG(X, A, .(M, L)) → MIN_IN_GGA(X, M, B)
MIN_IN_GGA(X, Y, X) → U7_GGA(X, Y, le_in_gg(X, Y))
MIN_IN_GGA(X, Y, X) → LE_IN_GG(X, Y)
LE_IN_GG(s(X), s(Y)) → U12_GG(X, Y, le_in_gg(X, Y))
LE_IN_GG(s(X), s(Y)) → LE_IN_GG(X, Y)
MIN_IN_GGA(X, Y, Y) → U8_GGA(X, Y, gt_in_gg(X, Y))
MIN_IN_GGA(X, Y, Y) → GT_IN_GG(X, Y)
GT_IN_GG(s(X), s(Y)) → U11_GG(X, Y, gt_in_gg(X, Y))
GT_IN_GG(s(X), s(Y)) → GT_IN_GG(X, Y)
U5_GAG(X, A, M, L, min_out_gga(X, M, B)) → U6_GAG(X, A, M, L, min2_in_gag(B, A, L))
U5_GAG(X, A, M, L, min_out_gga(X, M, B)) → MIN2_IN_GAG(B, A, L)
U1_GA(L, X, L1, min1_out_ag(X, L)) → U2_GA(L, X, L1, remove_in_gga(X, L, L2))
U1_GA(L, X, L1, min1_out_ag(X, L)) → REMOVE_IN_GGA(X, L, L2)
REMOVE_IN_GGA(N, .(M, L), .(M, L1)) → U9_GGA(N, M, L, L1, notEq_in_gg(N, M))
REMOVE_IN_GGA(N, .(M, L), .(M, L1)) → NOTEQ_IN_GG(N, M)
NOTEQ_IN_GG(s(X), s(Y)) → U13_GG(X, Y, notEq_in_gg(X, Y))
NOTEQ_IN_GG(s(X), s(Y)) → NOTEQ_IN_GG(X, Y)
U9_GGA(N, M, L, L1, notEq_out_gg(N, M)) → U10_GGA(N, M, L, L1, remove_in_gga(N, L, L1))
U9_GGA(N, M, L, L1, notEq_out_gg(N, M)) → REMOVE_IN_GGA(N, L, L1)
U2_GA(L, X, L1, remove_out_gga(X, L, L2)) → U3_GA(L, X, L1, minsort_in_ga(L2, L1))
U2_GA(L, X, L1, remove_out_gga(X, L, L2)) → MINSORT_IN_GA(L2, L1)
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
NOTEQ_IN_GG(s(X), s(Y)) → NOTEQ_IN_GG(X, Y)
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
NOTEQ_IN_GG(s(X), s(Y)) → NOTEQ_IN_GG(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
NOTEQ_IN_GG(s(X), s(Y)) → NOTEQ_IN_GG(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
REMOVE_IN_GGA(N, .(M, L), .(M, L1)) → U9_GGA(N, M, L, L1, notEq_in_gg(N, M))
U9_GGA(N, M, L, L1, notEq_out_gg(N, M)) → REMOVE_IN_GGA(N, L, L1)
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
REMOVE_IN_GGA(N, .(M, L), .(M, L1)) → U9_GGA(N, M, L, L1, notEq_in_gg(N, M))
U9_GGA(N, M, L, L1, notEq_out_gg(N, M)) → REMOVE_IN_GGA(N, L, L1)
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
U9_GGA(N, M, L, notEq_out_gg) → REMOVE_IN_GGA(N, L)
REMOVE_IN_GGA(N, .(M, L)) → U9_GGA(N, M, L, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg
notEq_in_gg(0, s(X)) → notEq_out_gg
U13_gg(notEq_out_gg) → notEq_out_gg
notEq_in_gg(x0, x1)
U13_gg(x0)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
GT_IN_GG(s(X), s(Y)) → GT_IN_GG(X, Y)
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
GT_IN_GG(s(X), s(Y)) → GT_IN_GG(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
GT_IN_GG(s(X), s(Y)) → GT_IN_GG(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
LE_IN_GG(s(X), s(Y)) → LE_IN_GG(X, Y)
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
LE_IN_GG(s(X), s(Y)) → LE_IN_GG(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
LE_IN_GG(s(X), s(Y)) → LE_IN_GG(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
MIN2_IN_GAG(X, A, .(M, L)) → U5_GAG(X, A, M, L, min_in_gga(X, M, B))
U5_GAG(X, A, M, L, min_out_gga(X, M, B)) → MIN2_IN_GAG(B, A, L)
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
MIN2_IN_GAG(X, A, .(M, L)) → U5_GAG(X, A, M, L, min_in_gga(X, M, B))
U5_GAG(X, A, M, L, min_out_gga(X, M, B)) → MIN2_IN_GAG(B, A, L)
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
MIN2_IN_GAG(X, .(M, L)) → U5_GAG(L, min_in_gga(X, M))
U5_GAG(L, min_out_gga(B)) → MIN2_IN_GAG(B, L)
min_in_gga(X, Y) → U7_gga(X, le_in_gg(X, Y))
min_in_gga(X, Y) → U8_gga(Y, gt_in_gg(X, Y))
U7_gga(X, le_out_gg) → min_out_gga(X)
U8_gga(Y, gt_out_gg) → min_out_gga(Y)
le_in_gg(s(X), s(Y)) → U12_gg(le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg
le_in_gg(0, 0) → le_out_gg
gt_in_gg(s(X), s(Y)) → U11_gg(gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg
U12_gg(le_out_gg) → le_out_gg
U11_gg(gt_out_gg) → gt_out_gg
min_in_gga(x0, x1)
U7_gga(x0, x1)
U8_gga(x0, x1)
le_in_gg(x0, x1)
gt_in_gg(x0, x1)
U12_gg(x0)
U11_gg(x0)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U1_GA(L, X, L1, min1_out_ag(X, L)) → U2_GA(L, X, L1, remove_in_gga(X, L, L2))
U2_GA(L, X, L1, remove_out_gga(X, L, L2)) → MINSORT_IN_GA(L2, L1)
MINSORT_IN_GA(L, .(X, L1)) → U1_GA(L, X, L1, min1_in_ag(X, L))
minsort_in_ga([], []) → minsort_out_ga([], [])
minsort_in_ga(L, .(X, L1)) → U1_ga(L, X, L1, min1_in_ag(X, L))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
U1_ga(L, X, L1, min1_out_ag(X, L)) → U2_ga(L, X, L1, remove_in_gga(X, L, L2))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
U2_ga(L, X, L1, remove_out_gga(X, L, L2)) → U3_ga(L, X, L1, minsort_in_ga(L2, L1))
U3_ga(L, X, L1, minsort_out_ga(L2, L1)) → minsort_out_ga(L, .(X, L1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U1_GA(L, X, L1, min1_out_ag(X, L)) → U2_GA(L, X, L1, remove_in_gga(X, L, L2))
U2_GA(L, X, L1, remove_out_gga(X, L, L2)) → MINSORT_IN_GA(L2, L1)
MINSORT_IN_GA(L, .(X, L1)) → U1_GA(L, X, L1, min1_in_ag(X, L))
remove_in_gga(N, .(N, L), L) → remove_out_gga(N, .(N, L), L)
remove_in_gga(N, .(M, L), .(M, L1)) → U9_gga(N, M, L, L1, notEq_in_gg(N, M))
min1_in_ag(M, .(X, L)) → U4_ag(M, X, L, min2_in_gag(X, M, L))
U9_gga(N, M, L, L1, notEq_out_gg(N, M)) → U10_gga(N, M, L, L1, remove_in_gga(N, L, L1))
U4_ag(M, X, L, min2_out_gag(X, M, L)) → min1_out_ag(M, .(X, L))
notEq_in_gg(s(X), s(Y)) → U13_gg(X, Y, notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg(s(X), 0)
notEq_in_gg(0, s(X)) → notEq_out_gg(0, s(X))
U10_gga(N, M, L, L1, remove_out_gga(N, L, L1)) → remove_out_gga(N, .(M, L), .(M, L1))
min2_in_gag(X, X, []) → min2_out_gag(X, X, [])
min2_in_gag(X, A, .(M, L)) → U5_gag(X, A, M, L, min_in_gga(X, M, B))
U13_gg(X, Y, notEq_out_gg(X, Y)) → notEq_out_gg(s(X), s(Y))
U5_gag(X, A, M, L, min_out_gga(X, M, B)) → U6_gag(X, A, M, L, min2_in_gag(B, A, L))
min_in_gga(X, Y, X) → U7_gga(X, Y, le_in_gg(X, Y))
min_in_gga(X, Y, Y) → U8_gga(X, Y, gt_in_gg(X, Y))
U6_gag(X, A, M, L, min2_out_gag(B, A, L)) → min2_out_gag(X, A, .(M, L))
U7_gga(X, Y, le_out_gg(X, Y)) → min_out_gga(X, Y, X)
U8_gga(X, Y, gt_out_gg(X, Y)) → min_out_gga(X, Y, Y)
le_in_gg(s(X), s(Y)) → U12_gg(X, Y, le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg(0, s(Y))
le_in_gg(0, 0) → le_out_gg(0, 0)
gt_in_gg(s(X), s(Y)) → U11_gg(X, Y, gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg(s(X), 0)
U12_gg(X, Y, le_out_gg(X, Y)) → le_out_gg(s(X), s(Y))
U11_gg(X, Y, gt_out_gg(X, Y)) → gt_out_gg(s(X), s(Y))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
U1_GA(L, min1_out_ag(X)) → U2_GA(X, remove_in_gga(X, L))
MINSORT_IN_GA(L) → U1_GA(L, min1_in_ag(L))
U2_GA(X, remove_out_gga(L2)) → MINSORT_IN_GA(L2)
remove_in_gga(N, .(N, L)) → remove_out_gga(L)
remove_in_gga(N, .(M, L)) → U9_gga(N, M, L, notEq_in_gg(N, M))
min1_in_ag(.(X, L)) → U4_ag(min2_in_gag(X, L))
U9_gga(N, M, L, notEq_out_gg) → U10_gga(M, remove_in_gga(N, L))
U4_ag(min2_out_gag(M)) → min1_out_ag(M)
notEq_in_gg(s(X), s(Y)) → U13_gg(notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg
notEq_in_gg(0, s(X)) → notEq_out_gg
U10_gga(M, remove_out_gga(L1)) → remove_out_gga(.(M, L1))
min2_in_gag(X, []) → min2_out_gag(X)
min2_in_gag(X, .(M, L)) → U5_gag(L, min_in_gga(X, M))
U13_gg(notEq_out_gg) → notEq_out_gg
U5_gag(L, min_out_gga(B)) → U6_gag(min2_in_gag(B, L))
min_in_gga(X, Y) → U7_gga(X, le_in_gg(X, Y))
min_in_gga(X, Y) → U8_gga(Y, gt_in_gg(X, Y))
U6_gag(min2_out_gag(A)) → min2_out_gag(A)
U7_gga(X, le_out_gg) → min_out_gga(X)
U8_gga(Y, gt_out_gg) → min_out_gga(Y)
le_in_gg(s(X), s(Y)) → U12_gg(le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg
le_in_gg(0, 0) → le_out_gg
gt_in_gg(s(X), s(Y)) → U11_gg(gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg
U12_gg(le_out_gg) → le_out_gg
U11_gg(gt_out_gg) → gt_out_gg
remove_in_gga(x0, x1)
min1_in_ag(x0)
U9_gga(x0, x1, x2, x3)
U4_ag(x0)
notEq_in_gg(x0, x1)
U10_gga(x0, x1)
min2_in_gag(x0, x1)
U13_gg(x0)
U5_gag(x0, x1)
min_in_gga(x0, x1)
U6_gag(x0)
U7_gga(x0, x1)
U8_gga(x0, x1)
le_in_gg(x0, x1)
gt_in_gg(x0, x1)
U12_gg(x0)
U11_gg(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2_GA(X, remove_out_gga(L2)) → MINSORT_IN_GA(L2)
Used ordering: Polynomial interpretation [25]:
U1_GA(L, min1_out_ag(X)) → U2_GA(X, remove_in_gga(X, L))
MINSORT_IN_GA(L) → U1_GA(L, min1_in_ag(L))
POL(.(x1, x2)) = 1 + x2
POL(0) = 0
POL(MINSORT_IN_GA(x1)) = x1
POL(U10_gga(x1, x2)) = 1 + x2
POL(U11_gg(x1)) = 0
POL(U12_gg(x1)) = 1
POL(U13_gg(x1)) = 0
POL(U1_GA(x1, x2)) = x1
POL(U2_GA(x1, x2)) = x2
POL(U4_ag(x1)) = 0
POL(U5_gag(x1, x2)) = 0
POL(U6_gag(x1)) = 0
POL(U7_gga(x1, x2)) = 1
POL(U8_gga(x1, x2)) = 0
POL(U9_gga(x1, x2, x3, x4)) = 1 + x3
POL([]) = 0
POL(gt_in_gg(x1, x2)) = 0
POL(gt_out_gg) = 0
POL(le_in_gg(x1, x2)) = 1 + x1 + x2
POL(le_out_gg) = 1
POL(min1_in_ag(x1)) = 0
POL(min1_out_ag(x1)) = 0
POL(min2_in_gag(x1, x2)) = 0
POL(min2_out_gag(x1)) = 0
POL(min_in_gga(x1, x2)) = 1 + x1 + x2
POL(min_out_gga(x1)) = 0
POL(notEq_in_gg(x1, x2)) = 0
POL(notEq_out_gg) = 0
POL(remove_in_gga(x1, x2)) = x2
POL(remove_out_gga(x1)) = 1 + x1
POL(s(x1)) = 1 + x1
remove_in_gga(N, .(N, L)) → remove_out_gga(L)
remove_in_gga(N, .(M, L)) → U9_gga(N, M, L, notEq_in_gg(N, M))
U10_gga(M, remove_out_gga(L1)) → remove_out_gga(.(M, L1))
U9_gga(N, M, L, notEq_out_gg) → U10_gga(M, remove_in_gga(N, L))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
U1_GA(L, min1_out_ag(X)) → U2_GA(X, remove_in_gga(X, L))
MINSORT_IN_GA(L) → U1_GA(L, min1_in_ag(L))
remove_in_gga(N, .(N, L)) → remove_out_gga(L)
remove_in_gga(N, .(M, L)) → U9_gga(N, M, L, notEq_in_gg(N, M))
min1_in_ag(.(X, L)) → U4_ag(min2_in_gag(X, L))
U9_gga(N, M, L, notEq_out_gg) → U10_gga(M, remove_in_gga(N, L))
U4_ag(min2_out_gag(M)) → min1_out_ag(M)
notEq_in_gg(s(X), s(Y)) → U13_gg(notEq_in_gg(X, Y))
notEq_in_gg(s(X), 0) → notEq_out_gg
notEq_in_gg(0, s(X)) → notEq_out_gg
U10_gga(M, remove_out_gga(L1)) → remove_out_gga(.(M, L1))
min2_in_gag(X, []) → min2_out_gag(X)
min2_in_gag(X, .(M, L)) → U5_gag(L, min_in_gga(X, M))
U13_gg(notEq_out_gg) → notEq_out_gg
U5_gag(L, min_out_gga(B)) → U6_gag(min2_in_gag(B, L))
min_in_gga(X, Y) → U7_gga(X, le_in_gg(X, Y))
min_in_gga(X, Y) → U8_gga(Y, gt_in_gg(X, Y))
U6_gag(min2_out_gag(A)) → min2_out_gag(A)
U7_gga(X, le_out_gg) → min_out_gga(X)
U8_gga(Y, gt_out_gg) → min_out_gga(Y)
le_in_gg(s(X), s(Y)) → U12_gg(le_in_gg(X, Y))
le_in_gg(0, s(Y)) → le_out_gg
le_in_gg(0, 0) → le_out_gg
gt_in_gg(s(X), s(Y)) → U11_gg(gt_in_gg(X, Y))
gt_in_gg(s(X), 0) → gt_out_gg
U12_gg(le_out_gg) → le_out_gg
U11_gg(gt_out_gg) → gt_out_gg
remove_in_gga(x0, x1)
min1_in_ag(x0)
U9_gga(x0, x1, x2, x3)
U4_ag(x0)
notEq_in_gg(x0, x1)
U10_gga(x0, x1)
min2_in_gag(x0, x1)
U13_gg(x0)
U5_gag(x0, x1)
min_in_gga(x0, x1)
U6_gag(x0)
U7_gga(x0, x1)
U8_gga(x0, x1)
le_in_gg(x0, x1)
gt_in_gg(x0, x1)
U12_gg(x0)
U11_gg(x0)